//1. 下载token 第3方包
// npm i jsonwebtoken
//2. 引入，它不是中间件。

const JWT = require('jsonwebtoken')
let secretOrPrivateKey = 'adflkjafdlkjad;lfkjsa;dfkjsf我是锁子'
// console.log( typeof JWT )

// JWT.sign( payload, secretOrPrivateKey ) //=> 根据已知数据生成一个token字符串
    //payload: 要加密的数据对象
    //secretOrPrivateKey: 一把你自己的私密钥匙：私钥

    //=> iat: 1641880651 生成的token会自动加一个这个token生成时间 。

let data = {
    mid:'xxx-0001-xxx',
    tel:'15811112222',
    username:'zs'
}

let tokenStr = JWT.sign( data,secretOrPrivateKey )
    //
// console.log( tokenStr )
/*
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtaWQiOiJ4eHgtMDAwMS14eHgiLCJ0ZWwiOiIxNTgxMTExMjIyMiIsInVzZXJuYW1lIjoienMiLCJpYXQiOjE2NDE4ODA2NTF9.ceuQOzV3pCcYbcww5S4O-3Q5Bq5BOn1zV7syi4JrkzQ
*/

// 解密token。JWT.verify( token,secretOrPrivateKey ) //=> 根据已有的token字符串进行解密 专业的说：验证token是否有效

let tks = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtaWQiOiJ4eHgtMDAwMS14eHgiLCJ0ZWwiOiIxNTgxMTExMjIyMiIsInVzZXJuYW1lIjoienMiLCJpYXQiOjE2NDE4ODA2NTF9.ceuQOzV3pCcYbcww5S4O-3Q5Bq5BOn1zV7syi4JrkzQ'

let d = JWT.verify( tks,secretOrPrivateKey ) //验证通过会原样解析出来，如果token无效则报错。

console.log( d,'解密|验证' )

console.log(111)